Jump to content
Site Stability Read more... ×
  • Advertisement

Search the Community

Showing results for tags 'Scripting'.

The search index is currently processing. Current results may not be complete.


More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Audio
    • Music and Sound FX
  • Business
    • Business and Law
    • Career Development
    • Production and Management
  • Game Design
    • Game Design and Theory
    • Writing for Games
    • UX for Games
  • Industry
    • Interviews
    • Event Coverage
  • Programming
    • Artificial Intelligence
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Engines and Middleware
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
  • Archive

Categories

  • Audio
  • Visual Arts
  • Programming
  • Writing

Categories

  • Game Dev Loadout
  • Game Dev Unchained

Categories

  • Game Developers Conference
    • GDC 2017
    • GDC 2018
  • Power-Up Digital Games Conference
    • PDGC I: Words of Wisdom
    • PDGC II: The Devs Strike Back
    • PDGC III: Syntax Error

Forums

  • Audio
    • Music and Sound FX
  • Business
    • Games Career Development
    • Production and Management
    • Games Business and Law
  • Game Design
    • Game Design and Theory
    • Writing for Games
  • Programming
    • Artificial Intelligence
    • Engines and Middleware
    • General and Gameplay Programming
    • Graphics and GPU Programming
    • Math and Physics
    • Networking and Multiplayer
  • Visual Arts
    • 2D and 3D Art
    • Art Critique and Feedback
  • Community
    • GameDev Challenges
    • GDNet+ Member Forum
    • GDNet Lounge
    • GDNet Comments, Suggestions, and Ideas
    • Coding Horrors
    • Your Announcements
    • Hobby Project Classifieds
    • Indie Showcase
    • Article Writing
  • Affiliates
    • NeHe Productions
    • AngelCode
  • Topical
    • Virtual and Augmented Reality
    • News
  • Workshops
    • C# Workshop
    • CPP Workshop
    • Freehand Drawing Workshop
    • Hands-On Interactive Game Development
    • SICP Workshop
    • XNA 4.0 Workshop
  • Archive
    • Topical
    • Affiliates
    • Contests
    • Technical
  • GameDev Challenges's Topics
  • For Beginners's Forum
  • Unreal Engine Users's Unreal Engine Group Forum
  • Unity Developers's Forum
  • Unity Developers's Asset Share

Calendars

  • Community Calendar
  • Games Industry Events
  • Game Jams
  • GameDev Challenges's Schedule

Blogs

There are no results to display.

There are no results to display.

Product Groups

  • Advertisements
  • GameDev Gear

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Website


Role


Twitter


Github


Twitch


Steam

Found 8 results

  1. I am trying to make a map editor with Assembly and C... Everything used to work, but now, I get these errors: cd C:\Editor wmake -f C:\Editor\Editor.mk -h -e C:\Editor\Editor.exe wasm SOURCE\MEASM.ASM -i="C:\WATCOM/h" -mf -6r -d1 -w4 -e25 -zq SOURCE\MEASM.ASM(2): Error! E032: Syntax error SOURCE\MEASM.ASM(3): Error! E032: Syntax error SOURCE\prologue.mac(1): Error! E032: Syntax error SOURCE\prologue.mac(1): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(4): Error! E535: Procedure must have a name SOURCE\prologue.mac(4): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(6): Error! E523: Segment name is missing SOURCE\prologue.mac(6): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(11): Error! E535: Procedure must have a name SOURCE\prologue.mac(11): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(14): Error! E525: Data emitted with no segment SOURCE\prologue.mac(14): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(15): Error! E525: Data emitted with no segment SOURCE\prologue.mac(15): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(19): Error! E506: Block nesting error SOURCE\prologue.mac(19): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(22): Error! E535: Procedure must have a name SOURCE\prologue.mac(22): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(24): Error! E525: Data emitted with no segment SOURCE\prologue.mac(24): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(25): Error! E525: Data emitted with no segment SOURCE\prologue.mac(25): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(28): Error! E535: Procedure must have a name SOURCE\prologue.mac(28): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(30): Error! E525: Data emitted with no segment SOURCE\prologue.mac(30): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(31): Error! E525: Data emitted with no segment SOURCE\prologue.mac(31): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(32): Error! E525: Data emitted with no segment SOURCE\prologue.mac(32): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(33): Error! E525: Data emitted with no segment SOURCE\prologue.mac(33): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(34): Error! E525: Data emitted with no segment SOURCE\prologue.mac(34): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(37): Error! E535: Procedure must have a name SOURCE\prologue.mac(37): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(39): Error! E525: Data emitted with no segment SOURCE\prologue.mac(39): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(40): Error! E525: Data emitted with no segment SOURCE\prologue.mac(40): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(41): Error! E525: Data emitted with no segment SOURCE\prologue.mac(41): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\prologue.mac(42): Error! E525: Data emitted with no segment SOURCE\prologue.mac(42): Note! N591: included by file SOURCE\MEASM.ASM(4) SOURCE\MEASM.ASM(5): Error! E032: Syntax error SOURCE\MEASM.ASM(6): Error! E032: Syntax error SOURCE\MEASM.ASM(9): Error(E42): Last command making (C:\Editor\MEASM.obj) returned a bad status Error(E02): Make execution terminated Execution complete I haven't used assembly for a while, and I don't really remember how to fix these errors. Here is the main assembly file: IDEAL JUMPS include "prologue.mac" P386 ; 386 specific opcodes and allows all the necessary crap... P387 ; Allow 386 processor MASM .MODEL FLAT ;32-bit OS/2 model .CODE IDEAL PUBLIC SetPalette2_ PUBLIC SetVGAmode_ PUBLIC SetTextMode_ PUBLIC inkey_ PUBLIC PutHex_ ;============================================================================== ; void SetPalette2(unsigned char *PalBuf,short count); ;============================================================================== Proc SetPalette2_ near push esi mov esi,eax mov cx,dx mov bx,0 cld mov dx,3C8H sp210: mov al,bl out dx,al inc dx lodsb out dx,al lodsb out dx,al lodsb out dx,al dec dx inc bx loop sp210 pop esi ret endp ;============================================================================== ; void SetVGAmode(void); ;============================================================================== Proc SetVGAmode_ near push ebp mov ax,13h int 10h ; Set 320x200x256 pop ebp ret endp ;============================================================================== ; ;============================================================================== Proc SetTextMode_ near push ebp mov ax,3 int 10h pop ebp ret endp ;============================================================================== ; ;============================================================================== Proc inkey_ near xor eax,eax mov ah,1 ;see if key available int 16h jz ink080 ;nope xor ax,ax int 16h jmp short ink090 ink080: xor ax,ax ink090: ret endp ;============================================================================== ; ;============================================================================== Proc HexOut_ near and al,15 cmp al,10 jb short hex010 add al,7 hex010: add al,'0' stosb ret endp ;============================================================================== ; void PutHex(char *buf,UINT mCode); ;============================================================================== Proc PutHex_ near push edi mov edi,eax mov eax,edx shr al,4 call HexOut_ mov eax,edx call HexOut_ xor al,al stosb pop edi ret endp end This file includes another file that I found on the Internet a while ago called "Prologue.MAC" Here is the code for it: P386 Macro SETUPSEGMENT SEGMENT _TEXT PARA PUBLIC 'CODE' ASSUME CS:_TEXT Endm macro PENTER STORAGE ;; 17 - Enter a procedue with storage space ;; Procedure enter, uses the 286/386 ENTER opcode push ebp mov ebp,esp IF STORAGE sub esp,STORAGE ENDIF ENDIF endm macro PLEAVE ;; 18 - Exit a procedure with stack correction. mov esp,ebp pop ebp endm macro PushCREGS ;; 19 - Save registers for C push es push ds ;The Kernel is responsible for maintaining DS push esi push edi cld endm macro PopCREGS ;; 20 - Restore registers for C pop edi pop esi pop ds ;The Kernel is responsible for maintaining DS pop es endm Can I have an Idea of what I could do to fix these errors? I am using OpenWatcom compiler. I *have* gotten Watcom to work before. In fact, this is one of the first few times it has not worked with me... Thanks in advance! -yaboiryan
  2. ricvalerio

    NPC scripting - Example with quest

    npc scripting 2.mp4 Here's a short clip of my WIP on the NPC scripting department. You can see devlog videos at https://www.youtube.com/channel/UCyOt8sPTqNxRseUzpzUEQQg. On this NPC's script, highlighted bold the events and actions showcased. upon accepting quest, send chat+clip to player "Fight me!" on combat, send chat+clip "For Honor" at 35%, cast self heal and "How bold of you" at 1%, stop the fight, reset, and grant quest completion This quest is actually a SLAY kind of quest, and what I did was at 1% (because the NPC can't die in this specific scenario, it's effectively set as immortal), he just resets, and grants the death to the quest system. A bit hacky, and I might need to rethink this later on, to maybe be a specific quest objective type by itself, or some other mechanism that prevents that specific player from being able to kill the NPC, while allowing other factions to do so. There are bugs as well, like the resetting itself, the rotation does not reset properly, but that will be quick to fix tomorrow. 🙂 What are your thoughts?
  3. Hello GameDev In this blog I'll be covering - development life-cycle thus far - provide an update on dynamic structures - introduce scripted events. Development life-cycle I think the time has come at last. What time is that exactly? Well let me explain... A couple months back I was thumbing through my blog series and I was startled. I noticed that it appeared as though I have been repeating myself for the better part of 4 years, coming up on 5 now. I wondered if maybe I was stuck in some sort of mental recursive loop or something, forever redoing, rebuilding, remaking. Quickly though I realised I was reading the situation incorrectly. Even though it may seem I've been talking about the same stuff for this long I've come to realise there have been 3 distinct phases this project has gone through and they are: Experimentation At the very beginning when I first started using THREE.js and node.js I played around with them and worked out a rough idea of how to get certain things to work a certain way. I made different colored boxes to represent different players. Each client could move one box and node.js would coordinate the movement. I had also written my first dynamic-wall functions. I remember they were atrociously slow and the boxes could not move around them. I learned what ideas were worth perusing and which needed to be scraped. Integration Eventually a time came when I felt comfortable enough with my abilities in javascript that I decided I needed start combining many of the different features I had made. I had boxes that could move around, walls that could be built and eventually I wrote my first function to merge the two, getting the boxes to move around walls that is. That too was extremely slow. Integrating these separate elements gave me a greater appreciation for logic that can be utilised across different applications, if that makes any sense . Stability Then in 2016 I decided it was time to kick things up a notch. I didn't know it at the time, but my first attempt at creating a robust function was probably the best thing to happen for this project. At the time I just wanted to finally make a function that wasn't going to break on me. I remember spending weeks tackling all the errors wondering does it ever end? But after I had that function executing like clock work it dawned on me just how important stable functions are. Especially if I want a framework for a game that is to be dependable. So there you have it Stable Integrated Code. Now of course there has always been a gradual transition from one phase to the next. And even today I find myself experimenting, after all experimenting can breath fresh life into a project. Dynamic Structures I'm incredibly proud to show off my first polished video showing the latest and greatest dynamic structure tool. In the video, if you're interested, I build a structure from scratch so you can see how user friendly I tried to make it Scripted Events I would also like to share with you a video that showcases the my first attempt at a scripted event. Now the video is the one I currently use on my project page updated earlier this month. If you haven't checked it out please do so. You can skip the first 25 seconds or so.. It's an idea I came up with a few months back for promoting the project. I've been getting to thinking that since these simulin live in a simulated world that I really want to play on that idea. So this is just one example of a scripted event. But there is no reason why the player can't also be informed the simulated nature of the world. For instance, the world is much to small come game time for there to be tons for wildlife roaming around, But I could have intermittent scripted events where wildlife materialise and stampede across a plain only to de-materialise once again. And I have many more ideas for scripted events. Conclusion I feel confident enough now and think it's time to move one full foot to game development. I've talked about transitioning in the past but I think enough is enough with the framework. I will still work on it until it has fully incorporated all the features I want. But lately I've been getting more and more excited to just get on with the game. Parting thought, If I didn't have somebody somewhere to share all this with I would never would have come this far. Thank you all for being a supportive and curious bunch!
  4. Building a save system for level objects in Unity Pt. 2 - Usable Objects This builds on https://www.gamedev.net/blogs/entry/2266638-building-a-save-system-for-level-objects-in-unity-pt1-checkpoints/ and I would highly recommend to read through part 1 before continuing with this second part. (You still will understand what is going on, I hope, but I am skipping the underlying save and loading logic here because I went into these details in part 1 already.) As the player moves along in a game and interacts with different objects in the world, we want to reflect his actions in the game by changing the state of objects permanently. For example, an item that was picked up should not appear again. Objectives: Save and restore states of objects in the scene according to the progress of the player. These objects are not interconnected. Just remember that this object was used Used programming concepts: System.Guid https://docs.microsoft.com/en-us/dotnet/api/system.guid Monobehavior https://docs.unity3d.com/ScriptReference/MonoBehaviour.html UnityEvent https://docs.unity3d.com/ScriptReference/Events.UnityEvent.html JSON serialization https://unity3d.com/learn/tutorials/topics/scripting/loading-game-data-json Interface AssetModificationProcessor.OnWillSaveAssets https://docs.unity3d.com/ScriptReference/AssetModificationProcessor.OnWillSaveAssets.html Link to first part: https://www.gamedev.net/blogs/entry/2266638-building-a-save-system-for-level-objects-in-unity-pt1-checkpoints/ Unique IDs 1. Finding a persistent unique ID for GameObjects This is very similar to the checkpoint but instead of using enums to identify the saved state, this approach works with a unique ID per GameObject. So that you do not need to create hundreds of enum entries just because you want your game to remember that token ABC was picked up. GameObjects do not come with a unique ID out of the box. There is Object.GetInstanceID() https://docs.unity3d.com/ScriptReference/Object.GetInstanceID.html but this is exactly only that - an instance id. This ID gets regenerated every time a unity scene is loaded. As we seek for consistent behavior, this will not do. 2. UUID So, after researching some time in the internet on how to give GameObjects a unique ID, I found Bunny83's UUID: https://github.com/Bunny83/UUID/. It is a component that will create and serialize a System.Guid for a GameObject - Perfect! The way it creates and remembers the Guid across scenes is an interesting process, definitely worth debugging through it to see how it works. IPersistentObject Great, now we have a unique ID that will not change when we load scenes. Next question is how to distribute this on the GameObjects that we want to remember. One way would be to just attach it. But is there an automatic way? Yes, there definitely is! We could work with [RequireComponent] but this only works on objects that have not been added to the scene yet. Let's build our own system for that then. The method I went for uses an Interface and the OnWillSafeAssets method in Unity. The later is called when a scene is saved. I basically search for all the objects in the scene that implement this interface and add the UUID component if it does not exist yet. In my case all objects that are interacted with came with a component that handles the logic of interacting with the object like adding stuff to the inventory or some currency counter. I extended this component with implementing my persistence interface. So that I can "mark" all types of components with the IPersistentObject interface that need a unique ID for saving. PersistableObject Now, similar to the checkpoint system, I created a component that handles the saving of the object. It also comes with a unity event and will register itself in a controller that has access to a save object that will be serialized to JSON. Instead of saving the enum though, this will save the UUID of the object. The OnWillSafeAssets method not only attaches the UUID but also the PeristableObject component. So that this does not need to be done manually either. The saving is then hooked up into the logic when the object is picked up, so that it will not appear again after being picked up once. (Have a look at the first part of this series for how approach the saving and loading. ) Great success! Now with both the enum based and UUID based saving of objects in the scene we have great tools that let the player feel that he is impacting the world with his/her actions. In the next part I will introduce you to how to integrate this into Unity's editor system for easy debug.
  5. Vivid3DDev

    VividScript

    Resumed work on Vivid-Script. Vivid-Script is a managed, real time scripting language. It is wrote for Vivid3D, and as such will not just be a normal language with a set of functions, it will instead offer several features that connect closely with the engine. It works on a dynamic engine. i.e, it uses a lot of the C# dynamics feature, so that code is clean and safe, by ensuring there are no mis-matches before running. here is a simple script, that runs fine. and also there is the code to run it in c# module TestModule int testVal end func Entry(int age,string name) printf("Hey testing!"+" Oh yeah!"+" This is working!") end And here is the code to run it, VSource src = new VSource("test1.vs"); VCompiler comp = new VCompiler(); VCompiledSource s = comp.Compile(src); VME test_vme = new VME(); test_vme.SetEntry ( s.EntryPoint ); test_vme.RunEntry ( ); And here is the function that registers C# methods/code to the language, so it can connect to normal C# methods easily. public void RegisterOSFuncs ( ) { // - printF( <Expressions> ) CFuncLink printF = new CFuncLink { Link = ( t ) => { Console.WriteLine ( "printF:" + t[0]); return null; } }; AddCFunc ( "printf", printF ); }
  6. UPDATE Update System I have just finished the back-end programming for update game data using unity asset bundle, Firebase?!! and setting some Google Firebase Features for login in Play Games Service, storing user data (Money, Username, etc), and store game data for update (asset bundles). Offline Mode I made some code to handle game if it is has no internet connection. Lighting System I try to research 2D Dynamic Lighting System with Normal Map and other methods. Animation I put some 2D animation for lighting system research. Assets My Game Artist still busy, so I still try to make the graphic assets for research purpose, I really do not want to hurt your eyes 😉.
  7. Awoken

    Moving the Masses

    I'm very pleased to showcase the new functionality I've incorporated allowing the user to select many Simulin at once. This feature was always on the back-burner because there were more pressing things to address. I'll quickly go through the technique I used. But first, please watch the following videos! I created a two faced plane where the opposite corners are defined by the vertices obtained from the right-click down and up events. Then raycaste to the planet twice and I have all four corners for the plane. After that I normalized the vertices and then raycaste from the position of every visible Simulin to the center of the planet. It's not 100% perfect, because the perspective camera obscures things a bit and the box that is drawn is an html element. For this reason Simulin along the edges of the selection box will sometimes not be selected. But really? big deal... Once the target Simulin are identified the user selects the destination. This is where the scripted behaviour of the Simulins movement comes in. Rather than having all the Simulin converge on a single point I created a move-able plane whose vertices are defined in a spiral initilizingFunction.definePositionPlane = function( unitScale ){ var geometry = new THREE.Geometry(); var material = new THREE.MeshLambertMaterial( { side: THREE.DoubleSide } ); // 'qv(0,0,0)' is short form of 'new THREE.Vector3( 0,0,0 )' geometry.vertices.push( qv( 0 , 0 , 0 ) ); /* the following function creates an 11 x 11 grid of vertices. * the first vertices is located at the center of the grid. * if we were to number the vertices 1 through 121 left from right, up to down * then the first vertices defined would be at the position of the 61st spot in the grid. * as the function cycle through 'i', two 'n' loops of 'l' length add move the location * of the next declared vertices 'l' left/right depending and 'l' up/down depending. * at the end of both 'n' loops l is incremented and the directions toggle. */ for( var i=0, j=61, k=61, l=1, q=-1, p=1, b=15; i<121; i+=0 ){ if( l < 11){ for( var n=0; n<l; n++ ){ j += q; geometry.vertices.push( qv( ( j - 61 ) * u * b , 0 , ( k - 61 ) * u * b ) ); i++; } for( var n=0; n<l; n++ ){ k += p; geometry.vertices.push( qv( ( j - 61 ) * u * b , 0 , ( k - 61 ) * u * b ) ); i++; } q*=-1; p*=-1; l++; } else { for( var n=0; n<10; n++ ){ j += q; geometry.vertices.push( qv( ( j - 61 ) * u * b , 0 , ( k - 61 ) * u * b ) ); i++; } i = 121; } } var face = new THREE.Face3( 0 , 10 , 120 ); geometry.faces.push( f ); face = new THREE.Face3( 0 , 120 , 110 ); geometry.faces.push( f ); geometry.computeFaceNormals(); var mesh = new THREE.Mesh( geometry , material ); mesh.visible = true; return mesh; }; The plane is moved and then oriented over the point the user chose. Each Simulin requesting a path is given an incremental vertices obtained from the selection plane. A raycaste call is done from that vertices location once the vertices is extrapolated to its global position. From there I get the sphere position and that become the unique goal for the Simulin in question. I think the effect looks awesome. Right now you draw the selection box by holding down the right mouse button and then when you release it the calculations are done. I'm also thinking that in the future I can program a custom routine and color for the direction in which you draw the selection box. If you go left to right, up to down then maybe you select every Simulin. right to left, up to down then maybe you select only hunters or some such idea. Let me know what you think....
  8. clemmons_io

    Game Programming Resources

    Game Programming Resources Rodrigo Monteiro, who has been making games for twenty years now, started a thread on Twitter for sharing his favorite game programming resources. I then collected those and a few responses and indexed them into a Twitter moment here: Here’s what was in the thread: Game Networking: https://gafferongames.com/categories/game-networking/ Development and Deployment of Multiplayer Online Games by IT Hare / No Bugs’ Hare is a multiplayer game programming resource split into nine volumes; the first of which is available here on Amazon. Linear Algebra: Geometry – Separating Axis Theorem (for collision detection): http://www.metanetsoftware.com/technique/tutorialA.html How to implement 2D platformer games: http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/ Pathfinding: https://www.redblobgames.com/pathfinding/a-star/introduction.html OpenGL Tutorial: https://learnopengl.com/ Audio Programming: https://jackschaedler.github.io/circles-sines-signals/index.html OpenAL Effects Extension Guide (for game audio): http://kcat.strangesoft.net/misc-downloads/Effects%20Extension%20Guide.pdf Entity Component Systems provide an alternative to object-oriented programming. Entity Systems are the future of MMOG development: http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ What is an entity system framework for game development? http://www.richardlord.net/blog/ecs/what-is-an-entity-framework.html Understanding Component-Entity-Systems: https://www.gamedev.net/articles/programming/general-and-gameplay-programming/understanding-component-entity-systems-r3013/ Alan Zucconi blogs about shaders and game math for developers on his site: https://www.alanzucconi.com/tutorials/ AI Steering Behaviours: http://www.red3d.com/cwr/boids/ Bartosz Olszewski blogs about game programming here: gamesarchitecture.com How to write a shader to scale pixel art: https://colececil.io/blog/2017/scaling-pixel-art-without-destroying-it/ Here’s podcast on C++ programming: http://cppcast.com/archives/ http://gameprogrammingpatterns.com/ Note: This post was originally published on my blog as game programming resources.
  • Advertisement
×