Jump to content
  • Advertisement


  • Content Count

  • Joined

  • Last visited

Community Reputation

218 Neutral

About anttoo

  • Rank
  1. You can see on the army picture, that I had a bug where those pesky soldiers just wouldn't die!   Also, as an aside,   My plan for monetizing the game is to sell "indulgences", these give you a 2X boost to the simulation speed, and would effectively be a subscription for 30 days.   And tradeable, much like EVE online's PLEX.
  2. Hi Guys,   I'm currently working on a small project, and I think it's worth getting a bit of criticism/feedback/suggestions.   Europa Lords is a text based persistant browser mmo... of europe around the 1400's, that's simulated.   A mouthful, at any rate.   [attachment=21322:screen2.png]   [attachment=21323:screen3.png]   [attachment=21324:screen-shot.jpg]   [attachment=21325:scren1.png]   The game is built on websockets and Javascript, so all centered on a single client page (no hyperlinks.) No waiting for those pesky HTTP headers to download...   Every 10 seconds the players game "ticks" and a new day is simulated.   The players cities are simulated, so each citizen does stuff, this depends on the buildings available, orders that have been set, and then what profession they have been assigned.   Players also have armies, which are essentially "moving" cities. They can attack other peoples armies, and the person with the largest army in a province can claim to be the "duke".   The players can form together to become "kingdoms", at which point they get there own private chat/page/forum, to conduct kingdom business.    Currently europe is split into 400 provinces, and I'm not sure if that's too many, or not enough.   How successful/fun could this game be do you think? When players log off there cities/armies are available for battle/being ransacked. And the main thing slowing down peoples attacks is a stamina counter that's proportional to army size...   A massive army of ~300/400 soldiers, takes well over an hour to regain enough stamina to attack again.   Do you think that a game this "hardcore", without traditional mob wars style compulsive clicking be fun? Would you play it?   I'd love some feedback/suggestions/advice,   I'm hoping to get an alpha release up in mid-may, so we will see then for certain I suppose!   -Ant
  3. anttoo

    2D grid map with a twist

    It's vague because I'm not sure how exactly such editor should work Also, because maybe someone has a brilliant idead I don't have   Generally, the editor is supposed to "paint" the grid in various colours (red, green, blue, yellow, etc) and the question is how to handle the "corners". Should we pain using triangfles directly? Or maybe draw on a 2D square grid and then run some algorithm to adjust corners?         No problem, there are empty kingdoms without rulers Just find one. Generally kings are a rare commodity, most people don't want that role (which is a bit surprising but I guess people are lazy even in games and if there is another player that would handle the burden of running the kingdom they are happy to step down and support such ruler )   Perhaps an emperor then....?   As for the editor, I'd have them paintable on a per triangle basis, this also allows more flexability if in the future you would want just 1 of 4 triangles to be colored.
  4. For any UK developers out there,   Try and talk to your accountant about Research and Development relief, this can be worth upwards of 20% of your expenditure, and quite often leads to rebates.   For some forms of game development, it could save you a bunch.
  5. anttoo

    2D grid map with a twist

    It's all about the visuals!   Let's say that we divide each square into 4 triangles, what we have there is, mathematically, exactly the same. So how you draw that, is completely up to you. (Color the upper right triangles red/green/blue/the color of a texture.)   And within your computer game, this could just be a integer array.     Or Look at it like this...   class Square {        int UpperRightTriangle;      int UpperLeftTriangle;      int BottomLeftTriangle;      int BottomRightTriangle;   }   var gameWorld = new Square[200,200]   // a 200 X 200 world map   Which is the same as....   var gameWorld = new int[400,400];       I'd store it like that, if it's not an issue. There are literally an infinite number of ways to compress it, but if you don't require it, ignore it.           Questions 2)    The same as normal, except when you click on a triangle, it changes texture/color? You obviously need to explain your question, it's too vague.     Now I've answered your question, I demand to be made a king of Europe1300!
  6.   Something else to consider is whether you want to employ somebody to do the work, or subcontract it.   Employment implies complications like taxes/employee rights etc.   In reality you probably mean to subcontract it, in which case you could pay piecework (set price per X completed.) Not necessarily a wage (Y per hour for doing X.)   Subcontracting often puts you in more control, but obviously, your subcontractor may jump if the works too hard.   it may be worth looking at one of the online free lance websites?   Or possibly, offer the work to your subcontracted artist at a lower rate? They may swap a lower rate for security of work.   Ultimately it comes down to simple supply and demand with regard to the rate you decide! 
  7. anttoo

    Suggestions for my Website

    Donations Tab looks needy. There are no games up there. Blog looks needy, articles:comments ratio is nil.   Is it a wordpress website? Look like it, not that your game's players would care really.   Found the game, color something, should be downloadable/playable from website, too many clicks.
  8. anttoo

    Finding a publisher

        Can I make a suggestion,    Don't ask for my email, don't have a password check, don't ask for my name, don't try and validate my email, don't have a captcha, You need two things, username & password, I punch those in, and need to be redirected to the game client straight away.   Each one of those things is a barrier to people playing the game, all of it can be collected later on, It took me 3 attempts to sign up, so I decided not too play when it attempted to validate (my made up) email.   The people trying to signup have no affinity for your game yet. Don't try there patience!   Publishers   From a business perspective they publisher will be looking at one thing, your player count (as you have no IP to speak off, that has any value.)   When you have thousands of daily users, you would have a chance of "publishing** " the game, which is akin to selling it for this browser style game.   You also have no clear monetization strategy (or do you?)     **strictly speaking, it's already "published", it's available on the internet. Really you need an investment of advertising and marketing.
  9. I think you really missed a great trick here!   You went far too low, and without any stretch goals!   You need to get some stretch goals on there ASAP! Get up to a couple of thousand to get your artist,
  10. anttoo

    OMNI (2d space-trading / fantasy MMO)

    If you were going for Douglas Adams level of funny,    you missed the teapot, so to say.
  11. anttoo

    Are donations to a free game revenue?

    From a financial reporting standard (GAAP) it would always be classified as revenue.   From a licensing perspective, it almost certainly would be seen as revenue, consult a lawyer!   It would be worth emailing the people who hold the license, and perhaps ask for direct permission, let them know your position, and see what they have to say.   From a tax perspective, it varies a lot.  I only know about UK tax, where it would be counted as income, or revenue if you're a company. And subject to income/corporation tax. And "possibly" subject to VAT, Consult an accountant, or send me a PM if you're UK based.
  12. anttoo

    Tickrate, Game Loop, FPS

        Client Bits:     The client in a network game only ever sends requests. You should make sure that's all your thinking about when doing client code.   I'm a client, I can't send ANY commands, but can send requests whenever I want!   So, I press the "D" button... I request to move right, (So send a PlayerRequestRightPacket )   The server receives it, updates it's physics system and then get's on doing other server stuff. (Perhaps the player is near a wall? It can't move any further, the server knows this and when it send's it updates back it, the player hasn't walked through the wall, he's just stood there next to it.)    So, I let the "D" button go... I request to stop moving right (So send PlayerRequestStopMovingRightPacket )   For all of these requests there is perhaps 50ms-200ms I have to wait before I start seeing updates. If this is fine, we stick with it.* (Humans find anything under around 100ms to be 'responsive') Or else we could run physics on the client, interpolating the results, constantly updating our values from those sent from the server. I suspect you won't even need to do this for a plat-former.   *this is not just an excerice of network programming, it's about hiding this lack of knowledge (which will always exists, you cannot eliminate it, just hide it!). You could have the player start an animation before walking, a little dust cloud around his feet? Anything so that it doesn't look none responsive.     Server Bits: First thing, make sure the server sends updated velocity figures that you can feed into the game client.    You should be running the same physics loop on the client and the server, but the important thing is to ignore your values whenever the server sends it's update figures. (This may have to be done retrospectivly, i.e. go back 100ms, quickly run physics again up to now, then lerp the position over another 20/40 ms.)   Either way, infomation may take 50-200 ms per round trip, you just need to hide that from the player.   Another thing we do, is slow/increase the update packets sent out depending on the activity. If people are playing a fast paced mini-game, we thrust it up, if everyone is sat around doing nothing or we have 30/40 players in a small area etc.. , we slow it down. 
  13. anttoo

    Hiding items in game world

    Perhaps the best thing to do with your game is to ignore persistence.   Either, you're attempting to have a large universe of "worlds" connected, hosted on players computers, or a minecraft/FIFA style server hosting.   If it's the first option, it just can't be done. How do you verify item transactions? You may think nobody would bother writing a hacker to do these things, but if they did, even laymen would use it.   If it's the second option, it's not required. Look at Minecraft server hosting for example. I could host a server for my friends, hack files, steal there items when they are not playing etc... delete there data file so there persistence is gone, all these things. Will they continue to play with me? No. Or will they care? No. Because they know it's not persistent.    It all depends on your game really.   Perhaps you should sell server space as part of your business model to let people play if it really needs to be persistent? But more than likely the second option applies, who will play with somebody on a hacked server?   To be honest, this forum is an inappropriate place for your question, it's a matter of gameplay really, and  you've really answered your own question. There is no technical requirements, just make one of these models into your game, and see if it's fun or not. Add passwords with chests if that's fun, or have nothing,but just make players aware that there is no persistence. 
  14. Hi,    I'm self taught!   Started when I was 13, went to College, and then University, got bored (AKA dropped out), then worked as an accountant..   Then decided to start my own software business, which has been fairly successful over the last two years.    I think the best moment of the last two years was when I managed to poach a client from a company who I had interviewed for about 2 and a bit years ago. It was only a small support contract, I think about £150 a month, but if felt pretty good    After leaving university, it was insane how hard it is to get any kind of software work without the degree. I would literally have worked for nothing, and yet larger companies are taking on Univeristy leavers at £15,000 - £22,000 per year.     At any rate, I've decided to use a mix of people. We have one experienced developer,  my self (half sales, half server programming), and a 17 year old apprentice.   I tell you what though, the apprentice works twice as hard. I don't think any medium to large companies in the UK are taking on younger kids to program, and I think it's the best way. Their cheaper, they work harder and they respond positively the more responsibility they get.   If you can harness that drive at 16/17/18, I think my company can make some amazing software engineers.    They say it take 10 years to master something, and fairly often you see amazing 17 year old dancers/pianists etc. but programming isn't seen in the same light. Most of the people who applied for the apprenticeship had no experience on the CV, but were 5/6 years into programming.   I'd encourage any other software houses on here to have a think about it!   To get back to the question: I think when you first start learning computer programming, it's very difficult to extrapolate into other languages. It takes a while before you can spend half a day with a new framework/language and just start writing code. That's one challenge.   The second, and most important is the Business side. It's so much more important. You can be the greatest programmer alive, but without any business sense, or knowledge your doomed to stay on the lowest levels. If you can't speak to a client and know business jargon, make business suggestions etc. you really can't progress beyond being intelligent labor.   I know many computer programmers, those that are successful, are good communicators. As much as we spend a lot of time translating our thoughts into programming language, that code has to be translated again to English/French/German to explain the concept to customers/players/users or else it's pointless.    It's like anything, if you can't communicate your ideas, there's little point having them.
  15. Hi,   Neither! Is my suggestion... Working on larger business applications, and stock systems etc. One of the many things that can make code difficult to read is having at all over the place, If I had an DeliveryNote class in my business application, I would not expect it to be able to print itself, email itself, just I wouldn't expect to print it, have it walk into the warehouse, find what it needs and deliver itself! It can be a touch confusing! I would expect a DeliveryNoteEmailer to know how to do that though...   Anyway... Those first few lines look promising,and then bam! Some very specific logic physics/input code in a "Game Play" class. It looks like your Physics, Scene class are just data structures yet have an update funcion?   I'd say there are a couple of issues with that, and wouldn't do it (unless it's a very small project, or not causing you any difficulty, premature optimization and all that.) In a larger project.   1) You spend a month on graphics, come back, where would you expect to find Player "Jumping" code? I'd generally want to find some kind of "physics" manager. The input for the jump would be in some kind of "player input" manager etc... It could be a bit hard to find, especially if GamePlay::Update() get's much bigger   2) It's going to be a lot harder to profile your code, fix bugs etc if it's all lumped together.   3) It's hard to maintain.   It seems you have half the solution though!    A very common pattern in game programming is a "Manager" pattern. So what we do is have a GamePlay class, that has many (I have 40/50 in my current project) Managers. (Little C# snippet of just a few declerations)   public NetworkManager NetworkManager { get; set; }         public EventManager EventManager { get; set; }         public GraphicsManager GraphicsManager { get; set; }         public WindowManager WindowManager { get; set; }         public GUIManager GUIManager { get; set; }         public StateManager StateManager { get; set; }         public LoginManager LoginManager { get; set; }         public ChatManager ChatManager { get; set; }         public PlayerManager PlayerManager { get; set; }         public ShardManager ShardManager { get; set; }         public CameraManager CameraManager { get; set; }         public WorldRenderManager WorldRenderManager { get; set; } AND A BASIC EXAMPLE OF THIS class ShardManager : IGameManager, IPlayStateManager { public Shard Shard { get; set; } public ShardManager(GameCore core) : base(core) { } public void HandleNewWorld(IGameNetworkEvent<JoinShardResponse> rep) { /// So the event that get's passed is fired by some other manager /// who has done his logic, but knows maybe a few other managers /// need to know what happed. I.E. Play a graphic on player death etc. } }   Then what you can have is an Event Class, which then specific types of events can inherit from (or you could do this with some kind of Id, the principle is the same.) class PlayerRequestJumpEvent : IGameEvent { } What happens then is, out core "game" is responsible only for one thing! Making sure that Managers are updated, and events are passed to them.   The managers handle the logic, which means that we have definite separation of duties. The Physics Manager is responsible for physics.   So to really boil down to how this would work for you,   Out Input Manager would fire a PlayerRequestJumpEvent when the player presses spacebar (or whatever.)   The Physics Manager would get the Request,  and perhaps apply a force to the object. That's all it needs to do.   And then in it's regular old Update, it can do collision detection etc....   It's a fairly standard pattern, helps keep larger code bases in check and comes into it's own when you need multi-frame events.   I think with your current pattern, there is a confusion between Data, State and Function.  Once you separate these three code become much easier to read, and you tend to write less rambling functions. As I said right at the top, a "Player" to me is a data object, and from just seeing the file Player.h, I'd be thinking that. If I saw PlayerManager.h or PlayerJumpManager.h or PlayerWalking.h even, I'd look there for code pertaining to the "logic" of walking! Not input, or physics just the logic of walking.   As to your actual question: "or should I go to the OOP side" I don't know, is it a big project? Are you an amazing C programmer, OOP is just one very nice way of handling this separation, there are others though (MVC pattern for one). I would say that, any competent Game Programmer even Business Programmer would understand your manager pattern. But it all comes down to how you need to complete your game.   If you were one of my Junior Developers, you would already have had a NoCommentsExeption object tied to your desk!    I hope these ramblings helped!
  • 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!