Jump to content
  • Advertisement

All Activity

This stream auto-updates     

  1. Past hour
  2. Rich Brighton

    Inspirations

    In a few weeks time, once I've upgraded my code to Scala 2.13 and I've sorted out my tooling story, I want to make a serious push to find collaborators. The natural way for me to begin that would be to start by describing both the old board games from decades ago and the video games that I have enjoyed playing. Ideally with a bit of a critique of what I liked and disliked. This is to help others identify if they share my passion for certain types of games. But also to explain why I feel there is an area of the video game design space that has been barely explored. Is this a legal no-no? Does it open myself and any future collaborators to being sued for copy right? I feel totally confident from a moral perspective that I'm not stealing anyone's hard work. In algorithmic terms, I actually find very little of use in the games I have played over the decades
  3. AtomicBrain

    Just Move

    Hi all. This is a small little arcade game that I have been working on for the past 6 months. Move the ball behind your finger and avoid obstacles. The speed of obstacles gradually increases, slowdown them with simple movements of a finger. Collect coins and discover new ball styles. More coins - more styles! Compete with friends: check whose finger is faster! Link: https://play.google.com/store/apps/details?id=com.Brain.JustMove Gameplay video: YouTube
  4. Today
  5. GoliathForge

    GC : Explosive Balls (game state)

    It turns out the pixel api thing has some neat extension headers dealing with sprite transforms. The 'engine' has static access so the necessity to pass an engine pointer to draw above can be refactored out. What these tools don't have is sprite animation. I'm happy for this. Don't try to do everything, do that put pixel thing you do and do it well. Modulate this... LOL...I'm on it.
  6. WrenchCrowbar

    'Neuronica' Space shooter: asking for your feedback.

    Hi Lorenzo, A fair point indeed. We will see if we can release some updated weaponry etc in a future update. Kind regards, Wrench
  7. In order to stay out of trouble, I'm going back to work. Previous Blog Entry Today's topic is my drop in game state manager system for moving between game screens such as an introduction sequence, main menu hierarchy, game play and first say on app termination. I don't remember where I initially found this gem because it has been quite a number of years that I've been reusing this. The concept is simple though. Manage screens as a stack. Push a screen pointer to the back to become active and pop to activate the previous. So how do we get a system like this up and running? The following are sloppy source grab copies. Two objects start us out, First a manager and an abstract base class. From the abstract, we derive the game screen objects. Each screen object handles their own behavior not knowing anything about the others. // file : GameState.cpp #include "olcPixelGameEngine.h" // <-- yours will be different #include "GameState.h" #include "States/intro.h" #include "States/game.h" #include "States/menu.h" using namespace Core; std::shared_ptr<States::Intro> introState; std::shared_ptr<States::Menu> menuState; std::shared_ptr<States::Game> gameState; void StateManager::initialize(olc::PixelGameEngine* engine, vec2 clientSize) { this->engine = engine; introState = std::make_shared<States::Intro>(this, clientSize); menuState = std::make_shared<States::Menu>(this, clientSize); gameState = std::make_shared<States::Game>(this, clientSize); states.push_back(menuState); #ifdef _RELEASE states.push_back(introState); #endif } void StateManager::shutdown() { introState->shutdown(); menuState->shutdown(); gameState->shutdown(); } void StateManager::changeState(States::Base_state* _state) {} void StateManager::pushState(States::Base_state* _state) {} void StateManager::popState() { states.pop_back(); } void StateManager::handleEvents(eStateAction _action) { switch (_action) { case eStateAction::pause: if (states.back()->name == "game_state") states.pop_back(); break; case eStateAction::play: if (states.back()->name == "menu_state") { int w = engine->GetDrawTargetWidth(); int h = engine->GetDrawTargetHeight(); RECT rect = { 0, 0, w, h }; // <-- I know --^ states.push_back(gameState); } break; case eStateAction::win: if (states.back()->name == "game_state") { MessageBox(0, "you win", "", 0); //winState->winnerName = gameState->getWinnerName(); //winState->winningTime = gameState->getTimeString(); //states.push_back(winState); } break; case eStateAction::loose: if (states.back()->name == "game_state") { MessageBox(0, "you loose", "", 0); //states.push_back(scoreState); } break; case eStateAction::quit: if (states.back()->name == "menu_state") PostQuitMessage(0); if (states.back()->name == "game_state") { ::ShowCursor(true); // umm, you're counting me aren't you ::ClipCursor(nullptr); states.pop_back(); } if (states.back()->name == "score_state") states.pop_back(); if (states.back()->name == "win_state") { // todo : record score gameState->reset(); states.pop_back(); } break; } // end switch(action) } void StateManager::update(float deltaTime) { states.back()->update(deltaTime); } void StateManager::draw() { states.back()->draw(); } With the manager out of the way, the base class for the stack-able objects. // file : base_state.h #ifndef _engine_core_states_base_state_h_ #define _engine_core_states_base_state_h_ #include <olcpixelgameengine.h> #include <string> namespace Core { namespace States { // abstract class Base_state { public: Base_state(void* _manager, std::string _name, vec2 _clientSize) { pManager = _manager; name = _name; clientSize = _clientSize; } virtual void initialize() = 0; virtual void shutdown() = 0; virtual void pause() = 0; virtual void resume() = 0; virtual void handleEvents() = 0; virtual void update(float _deltaTime) = 0; virtual void draw() = 0;s void* pManager; // que sara sara std::string name; // todo : refactor string to numeric id? :) vec2 clientSize; protected: Base_state() { /* empty constructor */ } }; } } #endif Correct me if I'm wrong (please) but of all the reasons to use polymorphism, this case is one of the better (subtyping). To be able to keep like items that are different in a common container. The derived class header would be as expected. Base class overloads in place plus specific functions and variables that would be required to make the new object behave as it will. Nothing new. I'll admit, I'm trapped in the common cycle that most online tutorials mold where the loop is divided into update / draw / check state / repeat. Is it correct? <shrug> So all this may be familiar and you hate it, or it's new and reader be cautious. The basic take away here is the stack concept. On the main loop side, we declare a Core::StateManager instance and initialize. During the loop, update and draw calls to the manager fire. I feel I don't need to list any additional modules but will list an example derived menu class. #include "menu.h" #include "../GameState.h" using namespace Core::States; void Menu::initialize() { rectPlay = { 360, 140, 440, 160 }; // 80 x 20 rectQuit = { 360, 165, 440, 185 }; // need more data or buttons are a known size } void Menu::shutdown() {} void Menu::pause() {} void Menu::resume() {} void Menu::handleEvents() {} void Menu::update(float _deltaTime) { } //template<typename ... Args> //std::string string_format(const std::string& format, Args ... args) //{ // size_t size = snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0' // std::unique_ptr<char[]> buf(new char[size]); // snprintf(buf.get(), size, format.c_str(), args ...); // return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside //} void Menu::draw() { olc::Pixel colorDefault = olc::Pixel(255, 255, 255); olc::Pixel colorHover = olc::Pixel(255, 255, 0); // _ // .--- todo : don't like handling user input inside a draw routine...fix me ----. \_(O,O)_ // V V ~ \ // ------------------- Game Menu ------------------------- Core::StateManager* manager = (StateManager*)pManager; olc::PixelGameEngine* e = manager->engine; POINT cursorPos; cursorPos.x = manager->engine->GetMouseX(); cursorPos.y = manager->engine->GetMouseY(); e->DrawRect(rectPlay.left, rectPlay.top, rectPlay.right - rectPlay.left, rectPlay.bottom - rectPlay.top); e->DrawRect(rectQuit.left, rectQuit.top, rectQuit.right - rectQuit.left, rectQuit.bottom - rectQuit.top); std::string cursorInfo = "CursorPos "; char buf[16] = ""; //string_format(cursorInfo, "Cursor Pos");// { %d, %d }", cursorPos.x, cursorPos.y); //manager->engine->DrawString(10, 20, cursorInfo); _itoa_s(int(cursorPos.x), buf, 10); e->DrawString(20, 20, std::string(buf)); _itoa_s(int(cursorPos.y), buf, 10); e->DrawString(70, 20, std::string(buf)); vec2 textOffset = { 25.f, 6.f }; int x = int(rectPlay.left + textOffset.x); int y = int(rectPlay.top + textOffset.y); // Play ------------------------------------------------- olc::Pixel textColor = colorDefault; if (::PtInRect(&rectPlay, cursorPos)) { textColor = colorHover; if(e->GetMouse(0).bPressed) manager->handleEvents(Core::eStateAction::play); } e->DrawString(x, y, "Play", textColor); // Quit -------------------------------------------------- x = int(rectQuit.left + textOffset.x); y = int(rectQuit.top + textOffset.y); textColor = colorDefault; if (::PtInRect(&rectQuit, cursorPos)) { textColor = colorHover; if(manager->engine->GetMouse(0).bPressed) { if (MessageBox(nullptr, "Are you sure you want to quit?", "Serious?", MB_YESNO) == IDYES) exit(0); } } manager->engine->DrawString(x, y, "Quit", textColor); } The game screen state would be similar but behave as what the main game play would be. Every valid screen pointer lives the life of the application but only the one at the back of the stack is active at a given time. This has served me well for adding game state transitions in custom work. Input and drawing are engine responsibilities so there is a member pointer to contend with in the manager. Perhaps not the best approach, but I don't know of alternatives other than a hard global or worse, singleton. But a subclass gets this functionality through the manager held engine pointer. Crappy note to end on perhaps, but that's where I am. It works, I called it good and have been reusing a number of times. Tips from the leet are always appreciated assuming my words are better than a hodgepodge of nonsense.
  8. GoliathForge

    GC : Explosive Balls (game state)

    ♗☘
  9. Rutin

    GC : Explosive Balls (game state)

    😀👍
  10. Freedom Games Game: Project Toll 3D Character Animator & 3D Artist (Foliage/Natural Props) Needed *Completely Remote Work, Revenue Shared Model with possibility of funding Project Toll is a Colonial American survival horror game with a focus on advanced AI and stealth that progressively gets harder as you play. The game is a fictional take on the historical events of the Roanoke Colony (Lost Colony) that took place from 1585-1590 in today's Dare County, North Carolina. Timeline: 9 month project Experience: Share over 30 years of business experience in and out of the game industry to include multiple AAA titles. Positions To Fill: 3D Character Animator & 3D Artist (Foliage/Natural Props) Needed Positions Already Filled: Producer/Creative Director; Lead Programmer/Technical Director; 3D Environmental Artist; 3D Character Modeler/Concept Artist; Entry-Level 3D Artist; Sound/Music Design Team Tools/Software Used: Unreal Engine; Modeling/Animating/Rigging:(Artist Discretion); Art/Graphic Design:(Artist Discretion); Version Control:GitHub; Project Management Tool:Asana If you interested or have any questions/concerns, please email me at: mgdemelobusiness@gmail.com. The quickest way to get a hold of me is via email. Or respond/message me here, or you can find me in Discord: MatthewGD#2789
  11. recently,i am trying to make a PCG like FBX generator. I want to know some detail information about FBX document . for example, now i am confused about transform and transformlink, i hope anyone can explain this for me,TKS. Deformer_Ex.txt
  12. timothyvincent

    "I hate naming things"

    Cheers You're right about the external force. I locked the spine rotation so they would stay upright, It didn't work that well but produced some funny results. Now that I'm using PuppetMaster I don't have to worry about balancing as the asset uses pin weights to balance ragdolls. That's cool, do you have anything online showing your self-balanced ragdolls? I'm interested.
  13. Hey I just posted an ad for a game im working on, feel free to check it out. https://www.gamedev.net/forums/topic/702090-indie-studio-multiplayer-aircraft-game-looking-for-all-kinds-of-talent/
  14. Pilot - Flying Action Multiplayer Game Project Title: Pilot (Temporary) Description: A cartoony aircraft game created in UnrealEngine4 focused on large level streaming maps and detailed foilage using impostors. It will be a multiplayer game where players can choose from a set of classes which will all have thier pros and cons. The game will be based around capturing and defending map control points. Link to Current Demo Video: https://www.youtube.com/watch?v=EGqlBTZWOvM Includes: -Aircraft (Plane / Helicoper) Classes with specialities and weapon custimization. -Cartoony Style (Volumetic Clouds, Explosions, Weapons, Props, Water) -Ground AI units which will make capturing points harder and will add more action. Team Structure: Bojan 'bok!' Kucera - Developer / Blueprints / WebDev / 3DModel / ProjectManagement / LevelDesign Talent Required: Gameplay Designer Concept Artist 3D Artist Level Designer Project Management Marketing Blueprint Scripter Website: In Progress Link to Trello Board for bigger overview: https://i.imgur.com/3JvCtzd.jpg Contact: E-mail: me@bojancode.com Discord: bok!#9971
  15. Yesterday
  16. SFML, libGDX and Monogame are in one category. If you will use LWJGL3 then you will use pure OpenGL. I study C#: Unity, OpenTK, pure modern OpenGL and TypeScript: pure WebGL, Phaser, Pixi.js, Three.js, Babylon.js. I study them by writing very simple clone games like: Snake, Tetris and so on.
  17. GoliathForge

    I Need Help With Animations

    Do you understand the prep work involved in putting the data half together? Maybe have a look at https://www.mixamo.com/ or perhaps the community could introduce similar or better fast tracks.
  18. JoeJ

    "I hate naming things"

    I like this, very interesting. Looking at the first image the characters are clearly hold upright by magic external force. While this looks funny, it also looks dumb. (Dreams has the same issue. It surely becomes hard to make a game looking serious because of the somewhat silly character animation.) Personally i worked on a self balancing walking ragdoll. This works but is very hard and time consuming. But i think you could make it look better without going there. For example the character he has to keep its Center of mass between the feet for stable balance, and if it runs the upper body bends forwards, also the COM. For something better you can look up robotics terms like Inverted Pendulum or Zero Moment Point and Instantaneous Capture Point, but i guess some intuition and watching real life humans should be enough for faked balance.
  19. Randy Gaul

    Points constraint approach

    Integration might not be an important topic compared to which kind of solver you use. I like Thomas Jakobsen style for cloth and have implemented this for a game before successfully. I also used it for touch-bend vegetation. Vegetation would be a lot like a hair. I found success with a kind of shape-matching where the initial input mesh defines the target position for each particle, and each bone maps one-to-one with one particle. This way graphical meshes can be converted to the cloth run-time format without requiring additional authoring from an artist. The way the shape matching works is I would define a frame of reference for each particle by considering the next particle's position. As the particles move about, I used a function to calculate the shortest arc quaternion between the original target positions and moved positions. There was one part where the quaternion would flip around under large rotations, and I believe I solved it with an if-statement and negated the quaternion at a certain point. After finding target positions for each particle, which are defined relative to parent particles (to help preserve the original shape), I would attach weak springs from each particle to each target position. The strength of the spring was tapered from root to end, and tuneable by an artist. The only difference between the constraints between particles and the constraints between a particle and a target position, was I assumed target positions were particles with infinite mass. With this strategy I found bend constraints to be a nuisance, and simply removed them. http://www.cs.cmu.edu/afs/cs/academic/class/15462-s13/www/lec_slides/Jakobsen.pdf
  20. phil67rpg

    hex grid

    can I please get some help with this problem.
  21. Hello, I'm currently searching for additional talented and passionate members for our team that's creating a small horror game. About the game: The game would be a small sci-fi/post-apocalyptic survival horror 3D game with FPS (First person shooter) mechanics and an original setting and story based in a book (which I'm writing) scene, where a group of prisoners are left behind in an abandoned underground facility. It would play similar to Dead Space combined with Penumbra and SCP: Secret Laboratory, with the option of playing solo or multiplayer. Engine that'd be used to create the game: Unity About me: I'm a music composer with 4 years of experience and I'm fairly new in this game development world, and I'm currently leading the team that'd be creating this beautiful and horrifying game. I decided that making the book which I'm writing into a game would be really cool, and I got more motivated about doing so some time ago when I got a bunch of expensive Unity assets for a very low price. However, I researched about how to do things right in game development so I reduced the scope of it as much as I could so that's why this game is really based in a scene of the book and not the entire thing. Also I'm currently learning how to use Unity and learning how to program. Our team right now consists of: Me (Game Designer, Creator, Music Composer, Writer), 4 3D Modelers, 2 Game Programmers, 1 Sound Effect Designer, 1 Concept Artist, 1 3D Animator and 1 Community Manager. Who am I looking for: We are looking for a talented and passionate programmer that's experienced with Unity and C#. Right now the game is in mid-early development and you can see more information about it and follow our progress in our game jolt page here: https://gamejolt.com/games/devilspunishment/391190 . We expect to finish some sort of prototype in 3 months from now. This is a contract rev-share position If you are interested in joining, contributing or have questions about the project then let's talk. You can message me in Discord: world_creator#9524
  22. Meet the almighty PLACEHOLDER! Isn't he cute? His round face, his little nose... I think he is the all time most used protagonist for games. He does all the hard work, and later another fancy model gets all the credit. So unfair. Let's give him proper animations for such a hero. I used Unity animation editor to create an animation controller and a bunch of animations for movement, idle times and combat using only position, rotation and scale transforms. Now my combat implementation was firing triggers in the animation controller and, suddenly, all this tiny capsules were alive. Even the flow of combat was easy to follow, admiring heros swinging their swords instead of squeezing my eyes looking for the damage line in a log. I admit it, they grew on me. I found myself cosplaying them and... well...let me tell you they are cute as hell. Fierce warriors I also added some more UI elements and some code to show Action Points cost while moving. All that felt like a big step. But just two warriors... even for testing purposes... was too boring. I needed more characters, and everybody knows behind every great warrior there is a great mage. And it would be a good test for the combat engine, as it would add more diversity to abilities. While implementing mage abilities soon I realized I was missing a key ingredient of combat and visual wowness... particle effects. Now I have to stop here and admire how many good videos about this subject youtube has. So many people doing such a great work. I would like to, at least, mention the videos from Gabriel Aguiar. Almost all particle effects I ended up using are "inspired" by his tutorials. Thanks, man. So now with the mage. I chose three basic abilities: Fireball. Of course. It works as a projectile. Fireblast. To introduce critical hits to combat. Firewave. An AoE. Everybody loves AoE. So much magic. When the spells were implemented, the game suddenly became gorgeus. It's amazing how much can movement and particles add to the most simple visuals. As I was enjoying the upgrade in graphics, I started messing around with post processing effects. It added another whole level to visual appealing. So much with so little... It was very basic, but it definitely was a game. Except for one thing. A huge thing, in fact. I was playing both sides all the time. Not very interesting. The fun part is beating another one, even if it is a dumb computer player. And so the next step became clear...
  23. GoliathForge

    When code just isn't enough...

    sure you bet. I started with c/c++ in the dx5 era. Found a fondness for ogl2. What am I doing? I'm porting my older stuff. Back and forth for a good time2 as we raced for raster and compute power. Then c# came around, I resisted at first, but actually Unity reversed that. Never knowingly went .net api stuff. UDK was my favorite. <sob> Yup, different mind set than frameworks. UE doesn't run on my machine, so no joy yet. pffttt. blender2.8 isn't on the table either (i5 HD9300 / the gt260(M) is cooked). So nah, I'm cool with what I do. It's great. I'll beef up the horse power when the time is necessary. Too many good things to be had right here and still a little localized glamour. Nice to have had the chat. edit: oh whoops...so are you saying look at my source please? I'm not certain. Every structure would be slightly different depending on the goal of the system. so, I'm sorry, I might have missed it. Being rogue is awesome. just not getting a whole lot done
  24. Where are you from? Your English seems fine to me. I'm not a very experienced developer yet and more a beginner, but I began so I should be able to give you some starting advice. You definitely want to use an engine or framework, otherwise, you need to build everything from scratch. I worked with Monogame and Unity and I can recommend you an engine. You got more control with a low-level framework like Monogame, but all the necessary stuff should be doable in Unity too. In my experience, you end up writing to much code for very basic stuff when doing low-level game development. Just try to make a simple text box where the players can enter a name, and you need hours for a good one. Also, you should be good at the programming language because it's all you got to make the game. I would recommend Unity. It would save you more time in the long run, and if you want to work with others together or get a job in a game dev career, it's useful to have knowledge about it. It may seem bloated and takes more time to get into it, but it will pay off. And maybe you should try to start with a way less complicated game. The hardest thing is to finish a game, starting to make them is always easier, and 5 years is a very long time. Your first game will always have not the best code, artwork, game design and marketing. You can practice it by making some smaller games first. I scraped over 100 hours of work, I used to make my first game but the game idea wasn't that good and working with Monogame was time-consuming. I found a new better game idea and need to get more into Unity, and I'm sure I can make my game in less than 2 years realistically. I wanted to make something short but hadn't a good game idea, so I'm now doing something bigger, which I probably could finish in a year, but you can underestimate the amount of work pretty easily, so I calculate with less than 2 years since I don't have finished a real game before. In the end, it was a very good choice to work on a different game. But if you work on a bigger game you need to do some good developing practice like DevOps, to ensure that you don't waste too much time on something bad. You need a good 2D platformer to make some money with it because there is a lot of competition in this genre. And Unity which is based on Monogame supports cross-platform development, so you can deliver your game on all operating systems, consoles and even mobile devices.
  25. timothyvincent

    "I hate naming things"

    I plan to write monthly updates about this project and fill each blog with a decent ratio of images to text. As I find blogs with large bodies of text hard to stay engaged in. I started this project almost 3 months ago when I finally finished a much needed update for my previous release. I was very much inspired by T.A.B.S (by Landfall) for this project. The animated physics in their game create satisfying simulation and unpredictable moments that normal animations don't provide. I had to try it myself. February I recycled many of the art assets and movement code from my past overly ambitious projects™ for this project so I could jump straight into creating the enemies and implementing animated physics. I watched this YouTube tutorial by TheCooperJ. He uses hinge joints to rotate rigidbody limbs by mimicking the rotation of an animated duplicate. Example GIF from tutorial: Here's what my implementation of his method looks like on a humanoid rig: Yeah, someone call him a taxi. So I did a Google Search and found out about a beautiful asset called PuppetMaster. This asset is extremely well made and optimized, I highly recommend it. It took a while to figure it out but I got there after a long night of pressing buttons and scratching my head. March I added a basic castle and some grass and used polyverse skies for the beautiful skybox. I also made a new enemy player model. I used the Unity NavMesh system and set up some basic AI and used animations from the asset store as placeholders to get a quick first prototype working. Even achieving this much made me feel genuinely happy and satisfied. I LOVE PHYSICS. I was about fall asleep sleep one night but instead I immediately jumped out of bed and onto my computer (I'm certain every dev has done this at some point) to implement the shield bash mechanic: April This is where the project is at now. I made a new scene, added more environment, adjusted the colours and lighting. I redid the enemies animations in Blender and improved their AI. There are 2 types of enemy right now: Archer and Melee. There are currently 4 items. I'm looking forward to adding more items that are more exciting and less generic, maybe even guns for a laugh. They can all be equipped in the left or right hand, you can throw them all, the bow is the only two handed weapon. The rest can be dual wielded. Even the shield: Here's a YouTube clip of me absolutely destroying these blokes skulls. I added a brutal head shot crunch sound. The game is still unnamed, I hate naming things, comment below if you have a suggestion. I have started conceiving a narrative for the game, I think explaining it is boring so I wont. Thanks for reading. I'll write another blog in a month, maybe. I actually wrote this blog spontaneously, never done this before.
  26. Osidlus

    Turn-based multiplayer combat

    Thank you for the comment and proposal. That frustration mentioned is not only from time having to wait- but also gives faster characters too much of an advantage. In reality both slower and faster character acts at the same time. And thing is some actions are kryptonite to the others and even slower character can succeed. Imagine toothpate lid drops you into water basin- starts spining around at speed yet you can catch it by putting your hand at relatively slow pace on to the outlet... I would definitely like to try your proposal as a game, but that hard gating on actions is something I personally do not like - rather see continually losing- by not acting...
  27. Steve_Segreto

    [ES2.0] Copying Internal Array Buffers

    You probably already realized this, but glCopyBufferSubData is available in GLES 3.0 if you would rather migrate from 1.0 to 3.0 in one step.
  1. Load more activity
  • 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!